Short message age classification

ABSTRACT

Systems and methods for short message age classification in accordance with embodiments of the invention are disclosed. In one embodiment of the invention, classifying messages using a classifier includes determining keyword feature information for a message using the classifier, classifying the determined feature information using the classifier, and estimating user age using the classifier.

CROSS-REFERENCE TO RELATED APPLICATIONS

The current application claims priority to U.S. Provisional Patent Application No. 61/472,527, filed Apr. 6, 2011, the disclosure of which is incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to classification systems and more specifically to classifying users by user information, such as a user's age, based on short messages.

BACKGROUND OF THE INVENTION

Technology users generate a significant volume of text based data via the Internet. Users of all kinds can create text though blogs, websites, articles, and social media applications such as Facebook, Twitter and Instant Messages (IMs). Users can also communicate over mobile networks through texting or the Short Message Service (SMS) through mobile devices. The ability to harness the great volume of text created by users and to glean useful information from that text can provide many benefits. For example, classifying users by user information can be used for targeting marketing to a certain demographic or analysis of market penetration within a particular demographic. In general, user information is any information that can classify the user, such as a user's age or preferences.

Data mining is a branch of computer science that generally seeks to extract patterns from large data sets by combing methods from statistics and artificial intelligence with database management. However, there has been little work for analyzing short messages. Short messages are messages that are often only a few sentences or less, generally used where writing space is at a premium. Popular social networking services provide many services for generating short messages, like Twitter messages or Facebook statuses, which utilize messages that are typically much shorter in length than full web pages. This brevity makes it increasingly difficult to use current data mining techniques specifically designed to analyze full pages of text to extract information from the increasingly large body of short messages being created via social networking services. Additionally, in recent years there has been an increase in the number of very short documents, usually in the form of user generated messages or comments.

SUMMARY OF THE INVENTION

Systems and methods for short message age classification in accordance with embodiments of the invention are disclosed. In one embodiment of the invention, classifying messages using a classifier includes determining keyword feature information for a message using the classifier, classifying the determined feature information using the classifier, and estimating user age using the classifier.

In another embodiment of the invention, determining keyword feature information for a message includes feature information selected from the group consisting of: vowel/consonant ratio, capitalization, number of emoticons, punctuation, usage of texting slang, and keyword frequency.

In an additional embodiment of the invention, determining vowel/consonant ratio keyword feature information further includes counting the number of vowels in the message using the classifier, counting the number of consonants in the message using the classifier, and dividing the number of vowels in the message by the number of consonants in the message using the classifier.

In yet another additional embodiment of the invention, the letter is excluded from the number of vowels in the message and from the number of consonants in the message.

In still another additional embodiment of the invention, determining capitalization keyword feature information for a message further includes counting the number of capital letter in the message using the classifier.

In yet still another additional embodiment of the invention, determining emoticon keyword feature information for a message further includes counting the number of emoticons in the message using the classifier.

In yet another embodiment of the invention, determining punctuation keyword feature information for a message further includes removing emoticons from the message using the classifier and counting the number of punctuation marks in the message using the classifier.

In still another embodiment of the invention, determining usage of texting slang keyword feature information for a message further includes breaking the message into slang tokens using the classifier and counting the number of slang tokens using the classifier.

In yet still another embodiment of the invention, slang tokens are determined using a dictionary of texting slang and the classifier.

In yet another additional embodiment of the invention, determining keyword frequency further includes tokenizing a message using the classifier, where the message includes a set of words, filtering stop words using the tokenized message and the classifier, keyword stemming the filtered stop words and the classifier, and counting the stemmed keywords using the classifier.

In still another additional embodiment of the invention, tokenizing aggregate user data further includes breaking up the message into word using the classifier, where the words are contained in the set of words and creating a token for each word in the broken up message using the classifier.

In yet still another additional embodiment of the invention, the stop words are words in a message which do not provide useful information to the classifier.

Still another embodiment of the invention includes a classifier including memory configured to store aggregate user data, where the aggregate user data includes a set of messages and a processor, where the processor is configured to determine keyword feature information using aggregate user data, classify the determined feature information using a classifier application, and estimate user age using the classified feature information.

In yet another additional embodiment of the invention, the classifier application utilizes a Naïve Bayesian classifier.

In still another additional embodiment of the invention, the classifier application utilizes a maximum entropy classifier.

In yet still another additional embodiment of the invention, the processor is further configured to aggregate user data over a network.

In yet another embodiment of the invention, the processor is further configured to determine the keyword feature information using the aggregate user data and predetermined feature information.

In still another embodiment of the invention, the processor is further configured to determine the keyword feature information for a message contained in the set of messages using the classifier application.

In yet still another embodiment of the invention, the determined keyword feature information includes feature information selected from the group consisting of: vowel/consonant ratio, capitalization, number of emoticons, punctuation, usage of texting slang, and keyword frequency.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a network diagram illustrating a classifier connected to a short message network in accordance with an embodiment of the invention.

FIG. 2 is a flow chart illustrating a classifier process to classify users by user information, such as age, in accordance with an embodiment of the invention.

FIG. 2A is a flow chart illustrating a training process for a classifier in accordance with an embodiment of the invention.

FIG. 3 is a flow chart illustrating a classifier process where various features are used and age is the user information in accordance with an embodiment of the invention.

FIG. 4 is a flow chart illustrating determination of feature information associated with keyword frequency as a feature in accordance with an embodiment of the invention.

FIG. 5 is a flow chart showing a classifier process where age is classified from keyword frequency features in accordance with an embodiment of the invention.

DETAILED DISCLOSURE OF THE INVENTION

Turning now to the drawings, systems and methods for classification of user information from short messages are disclosed. In many embodiments, user information is considered to be classifiable data about a user, such as a user's age or age group. Many embodiments perform classification of users by user information from short message text data found over a network. A number of embodiments collect user data from human validated users in human validated user classes to train a classifier. Certain embodiments employ a classifier to determine information concerning a user based upon the features of aggregated short message data. Various embodiments employ classifiers that classify users according to the user's age. Numerous embodiments utilize various features for classification such as vowel/consonant ratio, capitalization, emoticons (i.e. symbols indicating emotion), punctuation, texting slang and keyword frequency. Particular embodiments also utilize only keyword frequency as a feature for determining information concerning a user. Specific embodiments process keyword frequency as a feature through tokenization, stop word filtering and stemming of keywords.

In many embodiments, user information includes information such as a user's age. However, user information can span other aspects of a user such as a user's familiarity with technology, exposure to technology, education level, maturity level, typing/texting speed, interest in certain products or services, preferences, affiliations and other aspects of a user. User information can classify a user as an particular individual or an association of individuals such as individuals who use the same phone number, internet handle or computer terminal, for example students who use the same computer terminal at a school.

Although the present invention is described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention can be practiced otherwise than specifically described. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive.

Classifier Connected to a Short Message Network

FIG. 1 is a network diagram illustrating a classifier connected to a short message network in accordance with an embodiment of the invention. The network diagram 100 includes a classifier 102 connected to a network 104. The network is also connected to a database 106, a computer 108 and a wireless receiver 110. The wireless receiver is connected to a mobile device 112 and a computer 114.

In many embodiments, the classifier contains a classifier application for classifying users by user information. Users can use various devices such as a mobile device, for example a mobile phone or wireless device, or perhaps a computer or a database containing user data. At times, the mobile device, computer or other device can be connected to a wireless receiver, which allows for the mobile device, computer or other device to connect to the network. The network connects the classifier to the various devices that a user can use in order for the classifier to access user data.

In the illustrated embodiment, a classifier can be employed to aggregate user data, such as Facebook messages, twitter messages or SMS messages, found over a network. The user data can then be processed by classifier to classify users based on information about or characteristics of the user.

In many embodiments, the classifier contains memory configured to store aggregate user data and/or any other data which may be utilized by the classifier. The memory may be volatile storage and/or non-volatile storage, including any form of storage utilized in a classifier, such as disc-based storage.

Classifier Process to Classify Users by User Information

FIG. 2 is a flow chart illustrating a classifier process 200 to classify users by user information, such as age, in accordance with an embodiment of the invention. The process 200 begins by aggregating (202) user data. After aggregating (202) user data, feature information is determined (204). After feature information determination (204), a classifier is run (206). After the classifier is run (206), user classification by user information is output (208). After the user classification by user information is output (208), the process ends.

In many embodiments, user data is aggregated (202) over a network, as illustrated in FIG. 1. Aggregation of user data merely means that all relevant user data for particular users is aggregated. Feature information is determined (204) by separating out the raw user data by features relevant for classification by user information. Stated another way, feature information is the usable information for a classifier and is determined from features identified as relevant for the classifier. Features and/or feature information can be determined through a process of learning. Features and/or feature information can be predetermined, determined through running the classifier or both.

Features and/or feature information can correlate with a single feature or span several features. A classifier is run (206) by utilizing feature information. In certain embodiments, the classifier is a Naïve Bayesian classifier. In various embodiments the classifier is a maximum entropy classifier. Numerous embodiments use other classifiers based upon different statistical principles and/or algorithms. Various classifiers that can be utilized in accordance with embodiments of the invention are discussed below. The classifier is able to output (208) classification of users by user information.

In the illustrated embodiment, the classifier process 200 is able to take aggregated user data to classify users by user information. This is possible through running the aggregated raw user data though a classifier utilizing determined feature information in order to classify the user based upon a specific characteristic of the user. In various embodiments, the user information is age. Thereby, certain embodiments run a classifier process in which users are classified by age or age groups. However, in many embodiments user information can be of various other aspects of a user such as maturity, education, familiarity with technology as well as user preferences for certain products or services. A user can also be an individual or an association of individuals with a shared identity on a network, such as multiple users of a shared login account, same SMS telephone number or multiple users of a home or school computer terminal.

Training Short Message Classifiers

Classification is a process by which useful user information, or processed data about a user, can be distilled from aggregated user data, or unprocessed data relevant to a user. In many embodiments, classification involves utilizing certain identified features of aggregated data in order to distill useful user information, such as a user's age group. For example, the usage of complicated terminology in text can be a feature indicative of an adult rather than a child. Features are often used as independent variables that serve as predictors of a statistical relationship. Learning generally can be a process by which appropriate features are identified. In several embodiments, training (generally with assessment) is performed to build a classifier where features useful to classification are found by assessing pre-classified examples. Training can occur by instructing a classifier how to assess pre-classified examples. Training can be continuous or can be limited, such as by the types of pre-classified examples. Once a classifier is built, classification (generally with assessment) involves assigning new examples to classes based on specific features identified during the training of the classifier. In several embodiments, Naïve Bayes or Maximum Entropy classifiers are utilized to analyze short messages. In other embodiments, any of a variety of classifiers appropriate to a specific application can be utilized as a classifier.

FIG. 2A is a flow chart illustrating a training process for a classifier in accordance with an embodiment of the invention. The process 250 begins by gathering (252) user data from users for verification (254). After gathering (252) user data, classes of users are verified (254). After verification (254), additional user data from verified users in desired classes are gathered (256). After gathering (256) additional user data, user data is processed (258). After processing (258) user data, desired feature information is determined (260) from the user data. After determining (260) feature information, the features are associated (262) with desired classes in a classifier.

In many embodiments, gathering (252) user data from users for verification entails gathering information, such as text data, from users suspected to be of a given class, such as an age group. For example, a set of messages is gathered for each desired age groups (ex: 13-17, 18-24, 25-34, 35-54, and 55+) to classify by age groups. This can be accomplished by searching social networking sites for common phrases used by users to denote their birthdays such as “I turn 18 today!” or “It's my 50th birthday.” Verification (254) of a class of users can occur as a human intelligence task where a human verifies that a user is of a certain class. For example, a human trainer can go through the user data to validate that each user was, in fact, denoting their own age as of the date on a short message. In other embodiments, any of a variety of phrases can be detected and used to verify certain characteristics of a specific user in accordance with embodiments of the invention. Once a specific user is verified as falling within a specific category, additional data can be gathered (256) concerning the users in desired classes for use in the training of a classifier. For example, a long history of messages is pulled for each of these users, resulting in a full training set of messages from users that are verified to be in the desired age groups (i.e. the age of the user at the time the message was generated is known). User data can be processed (258) to filter out any undesired user data. For example, each message can be tokenized into words and then filtered through a set of stop words (and, the, but, etc.) to remove noise. The keywords are then stemmed to unify occurrences of the same term but with different suffixes (listen, listening, listened, etc.). Certain embodiments do not have processing (258) but perform determination (260) of feature information after gathering (256) user data.

Once a set of verified user data is collected, a classifier can be trained by determining (260) statistically relevant features. For example, the occurrence of emoticons can be a feature of interest and the number of occurrences of emoticons can be feature information. A classifier is then trained to associate (262) extracted features with desired classes. For example, a classifier can be instructed to associate a user with a certain class from the occurrence of a certain number of emoticons in a single message for a certain user.

In the illustrated embodiment, training generally occurs for a classifier before the classifier classifies user data and associated users. Once a classifier is trained, the classifier can continuously classify users by their user data. A classifier can also be continuously trained to capture changes in the manner that language is used in short messages. For example, certain features can have different associations with classes at certain time periods or different geographical locations.

A Naïve Bayes classifier is a simple probabilistic classifier based on applying Bayes' theorem (Bayesian statistics) with strong (Naïve) independence assumptions. An expression for a Naïve Bayes classifier is as follows:

${{classify}\left( {f_{1},\ldots \mspace{14mu},f_{n}} \right)} = {\underset{c}{\arg \max}\mspace{11mu} {p\left( {C = c} \right)}{\prod\limits_{i = 1}^{n}\; {{p\left( {F_{i} = {\left. f_{i} \middle| C \right. = c}} \right)}.}}}$

This is where C is a dependent class variable with a small number of outcomes or classes conditional on several feature variables F₁ through F_(n) and features n.

A Naïve Bayes classifier assumes that the presence or absence of a particular feature of a class is unrelated to the presence or absence of any other feature. For example, a fruit may be considered to be an orange if it is orange in color, round and about 3 inches in diameter. Even if these features depend on each other or upon the existence of the other features, a Naïve Bayes classifier considers all of these properties to independently contribute to the probability that this fruit is an orange. The Naïve Bayes classifier requires a relatively small amount of training data to estimate the parameters, such as the means and variances of the variables, necessary for classification. As independent variables are assumed, training simply involves determining the variance of the variables for each class and need not involve determining the entire covariance matrix.

A maximum entropy classifier is a classifier implemented using a multinomial logit or multinomial logistic regression model. A typical expression for a maximum entropy classifier is as follows:

${\Pr \left( {y_{i} = j} \right)} = \frac{\exp \left( {X_{i}\beta_{j}} \right)}{1 + {\sum\limits_{j = 1}^{J}{\exp \left( {X_{i}\beta_{j}} \right)}}}$

A typical expression to ensure identifiably is as follows:

${{\Pr \left( {y_{i} = 0} \right)} = \frac{1}{1 + {\sum\limits_{j = 1}^{J}{\exp \left( {X_{i}\beta_{j}} \right)}}}},$

In the two expressions directly above, for the ith individual, y_(i) is the observed outcome and X_(i) is a vector of explanatory variables. The unknown parameters β_(j) are typically estimated by maximum a posteriori (MAP) estimation, which is an extension of maximum likelihood estimation using regularization of the weights to prevent pathological solutions (usually a squared regularizing function, which is equivalent to placing a zero-mean Gaussian prior distribution on the weights, but other distributions may also be possible). The solution is typically found using an iterative procedure such as iteratively reweighted least squares (IRLS) or, more commonly these days, a quasi-Newton method such as the L-BFGS method.

Maximum entropy classifiers can be used as alternatives to Naïve Bayes classifiers because they do not require statistical independence of the independent variables, commonly known as features that serve as predictors. However, learning in such a model may be significantly slower than for a Naïve Bayes classifier. For example, learning in a Naïve Bayes classifier is a matter of counting up the number of co-occurrences of features and classes, while in a maximum entropy classifier the weights, which are typically maximized using a maximum a posteriori (MAP) estimation, must be learned using an iterative procedure.

Although specific classifiers are described above including Naïve Bayes and maximum entropy classifiers, any of a variety of classifiers can be utilized to analyze short message in accordance with embodiments of the invention.

Classifier Process with Various Features where User Information is Age

FIG. 3 is a flow chart illustrating a classifier process 300 where a number of specific features are used to determine the age of a person authorizing a set of short messages in accordance with an embodiment of the invention. The process 300 illustrated in FIG. 3 is similar to the process 200 illustrated in FIG. 2. Aggregated (302) data is processed to determine whether various features are present. In the illustrated embodiment, the features that are detected include vowel/consonant ratio 304, capitalization 306, number of emoticons 308, punctuation 310, usage of texting slang 312 and keyword frequency 314. These features are then provided to a classifier 316, which is configured to determine the age of the user that authored the aggregated short messages. In many embodiments, a Naïve Bayes classifier is used when feature information associated with multiple features is relevant, such as in this embodiment. Although a specific combination of features is identified in FIG. 3, a single feature, a subset of the illustrated features, and/or any of a variety of other features can be utilized to make determinations of any number of different characteristics of the user in accordance with embodiments of the invention. In addition, any of a variety of classifiers appropriate to a specific application can be utilized.

Feature information from a vowel/consonant ratio feature can be determined (304) by counting the number of consonants and the number of vowels in a message associated with a user from the aggregated user data. Respective “y”s can be excluded from each group. The number of vowels divided by the number of consonants can then be utilized as the feature information associated with this feature.

Feature information from capitalization as a feature can be determined (306) by counting the number of capital letters in a message associated with a user from aggregated user data. The number of capital letters can be utilized as an input to a classifier. The number of capital letters divided by the number of lowercase letters can also be utilized by a classifier in accordance with embodiments of the invention.

Feature information from emoticons can be determined (308) by counting the number of emoticons [e.g. “:)”, “:(”, “:]”, “@>--”, etc) in a message. Emoticons are text generally without literal meaning and used to convey emotions, pictures or ideas. The number of emoticons present within a short message can be provided as an input to an age classifier in accordance with embodiments of the invention.

Feature information from punctuation can also be determined (310) by first removing emoticons from the message. Next, the number of punctuation marks is counted. This count can be provided as an input to an age classifier and/or the number of punctuation marks divided by the number of alphabetic characters can also be provided as an input to the age classifier.

Feature information from texting slang can be determined (312) by breaking each message associated with a user into slang tokens. These slang tokens can be found in a dictionary of common texting slang and can be terms such as “H8”, “LOL”, “PPL”, “TXT”, etc). Slang tokens are generally terms that are not properly typed, written or spelled but can carry the same or a different meaning as complete words. For example, the slang token “LOL” can literally be from an abbreviated form of “laughing out loud” but does not necessitate that a user is actually laughing out loud but has found something humorous or amusing. In many embodiments, the number of slang tags and/or the number of specific slang tags is provided to a classifier to determine a characteristic of the user.

Feature information can also be determined using keyword frequency (314). Processes for determining keyword frequency are discussed further below.

In the illustrated embodiment, users are classified according to age. Therefore, age is the user information output by the classifier. In other embodiments, a variety of features are provided to a classifier in order to determine another characteristic of the user.

Determination of Feature Information Associated with Keyword Frequency as a Feature

FIG. 4 is a flow chart illustrating a process for determining feature information associated with keyword frequency in accordance with an embodiment of the invention. In the illustrated process 400, text from aggregated user data is tokenized (402). The tokenized text is then stop word filtered (404). The stop word filtered text is then keyword stemmed (406). The count of the stemmed keywords and/or of specific keywords can then be provided to a classifier in accordance with embodiments of the invention.

In many embodiments, tokenizing (402) entails breaking up a stream of text into words. Here, this can be breaking up a short message into its constituent words. Stop word filtering filters out stop words. Stop words are words chosen for a particular purpose which may not be utilized in the same way with a different use. In several embodiments, stop words are filtered out as “noise” that do not provide useful information to a classifier. For example, in certain filters, stop words can be short function words such as “the”, “and”, “but”, etc. Keyword stemming (406) can be utilized to unify occurrences of the same term in different forms, such as with different suffixes (e.g. listen, listening, listened, etc.).

Although a specific process is illustrated in FIG. 4 for determining keyword frequency, any of a variety of processes appropriate to a specific application can be utilized to identify and extract information from keywords that can be provided to a classifier in accordance with embodiments of the invention.

Classifier Process for User Age with Only a Keyword Frequency Feature

FIG. 5 is a flow chart showing a classifier process 500 for user age classification utilizing keyword frequency in accordance with an embodiment of the invention. The classifier process 500 begins by aggregating (502) user data. From the aggregated (502) user data, frequency information related to a keyword frequency feature is determined (504). A classifier is then applied (506) using the feature information related to the keyword frequency or keyword frequencies. Based upon the keyword frequency information provided to the classifier, a user age estimate is output (508). In many embodiments, the classifier is a maximum entropy classifier. The classifier that is run (506), however, can be any classifier including but not limited to a Bayes classifier or other classifier. Keyword frequency feature information can be determined (504) through various processes, including the process illustrated in FIG. 4.

Although the present invention has been described in certain specific aspects, many additional modifications and variations would be apparent to those skilled in the art. It is therefore to be understood that the present invention may be practiced otherwise than specifically described without departing from the scope and spirit of the present invention. Thus, embodiments of the present invention should be considered in all respects as illustrative and not restrictive. Accordingly, the scope of the invention should be determined not by the embodiments illustrated, but by the appended claims and their equivalents. 

1. A method for classifying messages using a classifier, comprising: determining keyword feature information for a message using the classifier; classifying the determined feature information using the classifier; and estimating user age using the classifier.
 2. The method of claim 1, wherein determining keyword feature information for a message includes feature information selected from the group consisting of: vowel/consonant ratio, capitalization, number of emoticons, punctuation, usage of texting slang, and keyword frequency.
 3. The method of claim 2, wherein determining vowel/consonant ratio keyword feature information further comprises: counting the number of vowels in the message using the classifier; counting the number of consonants in the message using the classifier; and dividing the number of vowels in the message by the number of consonants in the message using the classifier.
 4. The classifier of claim 3, wherein the letter ‘y’ is excluded from the number of vowels in the message and from the number of consonants in the message.
 5. The method of claim 2, wherein determining capitalization keyword feature information for a message further comprises counting the number of capital letter in the message using the classifier.
 6. The method of claim 2, wherein determining emoticon keyword feature information for a message further comprises counting the number of emoticons in the message using the classifier.
 7. The method of claim 2, wherein determining punctuation keyword feature information for a message further comprises: removing emoticons from the message using the classifier; and counting the number of punctuation marks in the message using the classifier.
 8. The method of claim 2, wherein determining usage of texting slang keyword feature information for a message further comprises: breaking the message into slang tokens using the classifier; and counting the number of slang tokens using the classifier.
 9. The method of claim 8, wherein slang tokens are determined using a dictionary of texting slang and the classifier.
 10. The method of claim 2, wherein determining keyword frequency further comprises: tokenizing a message using the classifier, where the message includes a set of words; filtering stop words using the tokenized message and the classifier; keyword stemming the filtered stop words and the classifier; and counting the stemmed keywords using the classifier.
 11. The method of claim 10, wherein tokenizing aggregate user data further comprises: breaking up the message into word using the classifier, where the words are contained in the set of words; and creating a token for each word in the broken up message using the classifier.
 12. The method of claim 10, wherein the stop words are words in a message which do not provide useful information to the classifier.
 13. A classifier, comprising: memory configured to store aggregate user data, where the aggregate user data includes a set of messages; and a processor, where the processor is configured to: determine keyword feature information using aggregate user data; classify the determined feature information using a classifier application; and estimate user age using the classified feature information.
 14. The classifier of claim 13, wherein the classifier application utilizes a Naïve Bayesian classifier.
 15. The classifier of claim 13, wherein the classifier application utilizes a maximum entropy classifier.
 16. The classifier of claim 13, wherein the processor is further configured to aggregate user data over a network.
 17. The classifier of claim 13, wherein the processor is further configured to determine the keyword feature information using the aggregate user data and predetermined feature information.
 18. The classifier of claim 13, wherein processor is further configured to determine the keyword feature information for a message contained in the set of messages using the classifier application.
 19. The classifier of claim 13, wherein the determined keyword feature information includes feature information selected from the group consisting of: vowel/consonant ratio, capitalization, number of emoticons, punctuation, usage of texting slang, and keyword frequency. 